Please note that when you profile debug builds or source code, the results are considerably more accurate as compared with release builds. In debug builds and when running source code, some execution speed is sacrificed for the benefit of being able to diagnose performance bottlenecks and other problems more easily. This is not the case with release builds which means that the results that the profiler produces, while not entirely inaccurate, should not be relied upon.
Example:
/*
Write a series of functions that will take different speeds and have the profiler give us some information.
lets_go and lets_finish_here will of course show varying results depending on how long it takes the user to close the message box.
On a system using a 1.8 GHZ duel core processor, the results show as follows:
void lets_do_some_more(): 8055 ms (76.9%)
void lets_finish_here(): 1122 ms (10.71%)
void another_loop(): 879 ms (8.39%)
void lets_go(): 418 ms (3.99%)
*/
void main()
{
start_profiling();
lets_go();
lets_do_some_more();
lets_finish_here();
}
void lets_go()
{
alert("Hi!", "This program demonstrates the use of the BGT profiler.");
}
void lets_do_some_more()
{
string test;
for(int counter=0; counter<13579000; counter++)
{
test+="a";
if(counter%1000==0)
{
test="";
}
}
another_loop();
}
void another_loop()
{
for(int counter=0; counter<13500000; counter++)
{
int check=1000;
}
}
void lets_finish_here()
{
alert("Finished.", "The profiler will now generate the log.");
generate_profile("profiler.log");
}